/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.senaclem.aspera.vista;

import co.edu.senaclem.logica.AprendizLogicaLocal;
import co.edu.senaclem.logica.FichaLogicaLocal;
import co.edu.senaclem.logica.PersonalLogicaLocal;
import co.edu.senaclem.logica.UsuariosLogicaLocal;
import co.edu.senaclem.modelo.Aprendiz;
import co.edu.senaclem.modelo.FichaTitulacion;
import co.edu.senaclem.modelo.Personal;
import java.io.IOException;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author anfeles
 */
@ManagedBean(name = "aprendizDatosVista")
@ViewScoped
public class AprendizDatosVista implements Serializable {

    @EJB
    private AprendizLogicaLocal aprendizLogica;

    @EJB
    private FichaLogicaLocal fichaLogica;

    @EJB
    private PersonalLogicaLocal personalLogica;

    @EJB
    private UsuariosLogicaLocal usuariosLogica;

    private String txtDocumento;
    private String txtNombre;
    private String txtApellido;
    private String txtTelefono;
    private String txtCorreo;
    private String txtFicha;
    private String txtJornada;
    private String txtPrograma;

    /**
     * Creates a new instance of AprendizDatosVista
     */
    public AprendizDatosVista() {

    }

    public String getTxtDocumento() {
        if (usuariosLogica.validarSesion()) {
            try {
                txtDocumento = (String) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("usuario");

                Aprendiz aprendiz = aprendizLogica.consultarPorId(Long.parseLong(txtDocumento));

                txtNombre = aprendiz.getDocumento().getNombre();
                txtApellido = aprendiz.getDocumento().getApellido();
                txtTelefono = aprendiz.getDocumento().getTelefono();
                txtCorreo = aprendiz.getDocumento().getCorreo();
                txtFicha = String.valueOf(aprendiz.getFichaTitulacion().getFicha());
                txtJornada = aprendiz.getFichaTitulacion().getJornada();
                txtPrograma = aprendiz.getFichaTitulacion().getCodigoPrograma().getNombre();

            } catch (Exception ex) {
                Logger.getLogger(AprendizVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        } else {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("../SesionInvalida.xhtml");
            } catch (IOException ex) {
                Logger.getLogger(CoordinadorVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return txtDocumento;
    }

    public void setTxtDocumento(String txtDocumento) {
        this.txtDocumento = txtDocumento;
    }

    public String getTxtNombre() {
        return txtNombre;
    }

    public void setTxtNombre(String txtNombre) {
        this.txtNombre = txtNombre;
    }

    public String getTxtApellido() {
        return txtApellido;
    }

    public void setTxtApellido(String txtApellido) {
        this.txtApellido = txtApellido;
    }

    public String getTxtTelefono() {
        return txtTelefono;
    }

    public void setTxtTelefono(String txtTelefono) {
        this.txtTelefono = txtTelefono;
    }

    public String getTxtCorreo() {
        return txtCorreo;
    }

    public void setTxtCorreo(String txtCorreo) {
        this.txtCorreo = txtCorreo;
    }

    public String getTxtFicha() {
        return txtFicha;
    }

    public void setTxtFicha(String txtFicha) {
        this.txtFicha = txtFicha;
    }

    public String getTxtJornada() {
        return txtJornada;
    }

    public void setTxtJornada(String txtJornada) {
        this.txtJornada = txtJornada;
    }

    public String getTxtPrograma() {
        return txtPrograma;
    }

    public void setTxtPrograma(String txtPrograma) {
        this.txtPrograma = txtPrograma;
    }

    public void modificar_action() {
        System.out.println("Modificar Aprendiz");
        if (usuariosLogica.validarSesion()) {
            try {

                Long docAprendiz = Long.parseLong(txtDocumento);

                //Modificar       
                Aprendiz aprendiz = new Aprendiz();
                Personal miPersonal = new Personal();
                miPersonal.setDocumento(docAprendiz);
                miPersonal.setNombre(txtNombre.toUpperCase());

                miPersonal.setApellido(txtApellido.toUpperCase());
                miPersonal.setCorreo(txtCorreo.toUpperCase());
                miPersonal.setTelefono(txtTelefono);

                personalLogica.modificar(miPersonal);

                Integer ficha = Integer.parseInt(getTxtFicha());
                FichaTitulacion fichaA = fichaLogica.consultarPorId(ficha);

                aprendiz.setDocumento(miPersonal);
                aprendiz.setFichaTitulacion(fichaA);

                aprendizLogica.modificar(aprendiz);

                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Mensaje: ", "El Aprendiz se Modificó con Exito"));
            } catch (Exception e) {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error: ", e.getMessage()));
            }

        } else {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("../SesionInvalida.xhtml");
            } catch (IOException ex) {
                Logger.getLogger(CoordinadorVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

    }

}
